| 如果你想测试一下这种情况的危害性,请访问一些著名的搜索引擎站点,输入下列搜索信息来查看一下会发生什么结果吧,信息如下:
<script> confirm("Do you hate purple dinosaurs?");</script>
如果某个搜索引擎网站并没有弹出任何搜索结果,那么你可以再多试几个网站。总之,经过我测试的大约40家比较有名的搜索引擎网站中,其中有6家完全没有任何防范地直接弹出查询结果窗口,另外有25家网站对我输入的信息进行了一定的过滤和更改处理,但实际上他们的修改往往是找错了关键点,未能切中要害。 从理论上来讲,最基本的过滤功能应该至少能够把一些分号排除出去,更高明一点应该也可以把问号、圆括号和引号去掉。如果达到最理想的效果,它应该可以把这样的<script>和</script>置标符去掉,因为这是最基本的HTML代码了。对于一个搜索引擎来说,由于它经常会把查询反馈信息串嵌入HTML语句中,因此在这里,它应该在显示最终结果之前,把一些特殊字符转换至HTML代码中。 非常令人失望的是众多著名的搜索引擎站点有时甚至连引号都不能辨别出来,而将其做为查找信息的一部分,搜索的结果自然是一片混乱。
当然,也许你会认为搜索引擎中混乱的表单输入代码还远不及对留言板系统的危害严重,而且由于受到影响的网页仅局限在搜索结果网页,这样它造成的影响也相对较小。 但实际上你的想法错了。搜索信息对于某些网站有很重要的影响,有些站点还将每天访客查找最频繁的关键词罗列在首页,或者随机来显示一些当前正在处理的搜索信息。我们现在有很多聊天室、网际讨论室的软件包,如果这些系统能够重新显示你粘贴的内容,它们就会允许粘贴人对该网页有更多的控制权。 再有,“感谢”众多客户端脚本提供了神奇功能,人们很可能会非常容易地实现将一个HTML格式的表单伪装成一行普通超文本链接信息,并将该表单使用"GET"或"POST"做为onClick的一个事件发送出去。任何一个心怀叵测的人都能够链接至一个搜索引擎网站或电子商务类购物网站,将一些对此问题不十分了解或未存戒备心理的网际访客引至他提供的链接所在,向他们输入cookie信息,并设置为信任状态,以便在未来随时能够对浏览者进行控制。 这才是该问题带来的真正危害。 而且危害还远不至这些,上面所提及的各种危害恐怕连实际会造成的危害的一半也没达到。因为我们还将面对站际脚本(XSS)一些与众不同的方面,那就是它的“字符设置”,这是与很多信任表单输入非常不同的一个问题。 |